/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.uniscol.view.wizard;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Christophe
 */
public class FormulaireMultiple implements Serializable {
    
    private List<EtapeFormulaire> etapes = null;
    
    private EtapeFormulaire etapeCourante = null;
    
    private boolean termine = false;

    public List<EtapeFormulaire> getEtapes() {
        if(etapes == null){
            etapes = new ArrayList<EtapeFormulaire>();
        }
        return etapes;
    }

    public void setEtapes(List<EtapeFormulaire> etapes) {
        this.etapes = etapes;
    }

    public EtapeFormulaire getEtapeCourante() {
        return etapeCourante;
    }

    public void setEtapeCourante(EtapeFormulaire etapeCourante) {
        this.etapeCourante = etapeCourante;
    }
    
    public void nextEtape(){
        
        if(getEtapes().isEmpty()){
            throw new IllegalArgumentException("Le formulaire multiple n'a pas d'étapes !");
        }
        
        if(getEtapeCourante() == null){
        // 1ere 
            setEtapeCourante(etapeCourante);
        }else{
            int index = getEtapes().indexOf(getEtapeCourante());
            if((getEtapes().size()-1) < index){
                setEtapeCourante(getEtapes().get(index + 1));
            }else{
                // terminé
                setEtapeCourante(null);
                termine();
            }
        }
    }
    
    public boolean isTermine(){
        return this.termine;
    }
    
    public void termine(){
        this.termine = true;
    }
}
